﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using Entidades1;
using System.Data;

namespace SisVetDAO
{


    /// <summary>
    /// Clase que tiene el acceso a los datos del Propietario en la base de datos.
    /// </summary>
    class MySqlPropietarioDAO: IPropietarioDAO
    {
        public string s;
        MySqlConnection conector = new MySqlConnection();
        string connectionString;

        public MySqlPropietarioDAO() {

        }

        public void iniciarConexion() {
            try {
                connectionString = "Server=localhost;Database=prueba;Uid=root;";
                conector.ConnectionString = connectionString;
                conector.Open();
                 s ="La conexion se ha realizado con exito";

            }
            catch(Exception ex) {
                s = ex.Message;
            }

        }

        public void Conectar()
        {
            iniciarConexion();
        }

        public void Desconectar()
        {
            conector.Close();
        }

        public void SetConexion(IDbConnection conexion)
        {
            conector =(MySqlConnection)conexion;
        }

        public void Insertar(Propietario p)
        {
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "insert into propietario(cedula, nombre, apellido, telefono, direccion, email) Values(?Cedula,?Nombre,?Apellido,?Telefono,?Direccion,?Email)";
            cmd.Parameters.AddWithValue("?Cedula", p.cedula);
            cmd.Parameters.AddWithValue("?Nombre", p.nombre);
            cmd.Parameters.AddWithValue("?Apellido", p.apellido);
            cmd.Parameters.AddWithValue("?Telefono", p.telefono);
            cmd.Parameters.AddWithValue("?Direccion", p.direccion);
            cmd.Parameters.AddWithValue("?Email", p.email);
            cmd.ExecuteNonQuery();
        }

        public List<Propietario> getTodos()
        {
            List<Propietario> lst = new List<Propietario>();
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "Select * From propietario";
            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read()) {
                Propietario p = new Propietario();
                p.cedula = reader["cedula"].ToString();
                p.nombre = reader["nombre"].ToString();
                p.apellido = reader["apellido"].ToString();
                p.telefono = reader["telefono"].ToString();
                p.direccion = reader["direccion"].ToString();
                p.email = reader["email"].ToString();
                lst.Add(p);
            }
            return lst;
        }

        public void actualizar(Propietario p)
        {
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "UPDATE propietario SET nombre=?Nombre, apellido=?Apellido, telefono=?Telefono, direccion=?Direccion, email=?Email WHERE cedula=?Cedula;";
            cmd.Parameters.AddWithValue("?Cedula", p.cedula);
            cmd.Parameters.AddWithValue("?Nombre", p.nombre);
            cmd.Parameters.AddWithValue("?Apellido", p.apellido);
            cmd.Parameters.AddWithValue("?Telefono", p.telefono);
            cmd.Parameters.AddWithValue("?Direccion", p.direccion);
            cmd.Parameters.AddWithValue("?Email", p.email);
            cmd.ExecuteNonQuery(); 
        }
    }
}